﻿namespace RSA
{
	/// <summary>
	/// RSAParameters for Import / Export
	/// </summary>
	public class RSAParameters
	{
		private byte[] m_E = new byte[] { };
		private byte[] m_N = new byte[] { };
		private byte[] m_P = new byte[] { };
		private byte[] m_Q = new byte[] { };
		private byte[] m_DP = new byte[] { };
		private byte[] m_DQ = new byte[] { };
		private byte[] m_IQ = new byte[] { };
		private byte[] m_D = new byte[] { };
		private byte[] m_Phi = new byte[] { };

		/// <summary>
		/// Parameter value E
		/// </summary>
		public byte[] E
		{
			get{ return m_E; }
			set{ m_E = value; }
		}
		
		/// <summary>
		/// Parameter value N
		/// </summary>
		public byte[] N
		{
			get{ return m_N; }
			set{ m_N = value; }
		}

		/// <summary>
		/// Parameter value P
		/// </summary>
		public byte[] P
		{
			get { return m_P; }
			set { m_P = value; }
		}

		/// <summary>
		/// Parameter value Q
		/// </summary>
		public byte[] Q
		{
			get { return m_Q; }
			set { m_Q = value; }
		}

		/// <summary>
		/// Parameter value DP
		/// </summary>
		public byte[] DP
		{
			get { return m_DP; }
			set { m_DP = value; }
		}

		/// <summary>
		/// Parameter value DQ
		/// </summary>
		public byte[] DQ
		{
			get { return m_DQ; }
			set { m_DQ = value; }
		}

		/// <summary>
		/// Parameter value IQ
		/// </summary>
		public byte[] IQ
		{
			get { return m_IQ; }
			set { m_IQ = value; }
		}

		/// <summary>
		/// Parameter value D
		/// </summary>
		public byte[] D
		{
			get { return m_D; }
			set { m_D = value; }
		}

		/// <summary>
		/// Parameter value Phi
		/// </summary>
		internal byte[] Phi
		{
			get { return m_Phi; }
			set { m_Phi = value; }
		}
	}
}